signatures = read_csv("dados//signatures.csv")
Parsed with column specification:
cols(
appliance = col_character(),
state = col_character(),
m1 = col_double(),
m2 = col_double(),
m3 = col_double(),
m4 = col_double(),
m5 = col_double(),
m6 = col_double(),
m7 = col_double(),
m8 = col_double(),
m9 = col_double(),
m10 = col_double()
)
signatures$diff_1 = signatures$m2 - signatures$m1
signatures$diff_2 = signatures$m3 - signatures$m1
signatures$diff_3 = signatures$m4 - signatures$m1
signatures$diff_4 = signatures$m5 - signatures$m1
signatures$diff_5 = signatures$m6 - signatures$m1
signatures$diff_6 = signatures$m7 - signatures$m1
signatures$diff_7 = signatures$m8 - signatures$m1
signatures$diff_8 = signatures$m9 - signatures$m1
signatures$diff_9 = signatures$m10 - signatures$m1
signatures[3:7] %>%
gather(key = "variavel", value = "valor") %>%
ggplot(aes(x = log(valor))) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
geom_histogram(fill = "lightyellow", color = "black", bins = 20) +
facet_grid(. ~ variavel, scales = "free_x")

signatures[8:12] %>%
gather(key = "variavel", value = "valor") %>%
ggplot(aes(x = log(valor))) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
geom_histogram(fill = "lightyellow", color = "black", bins = 20) +
facet_grid(. ~ variavel, scales = "free_x")

signatures[13:17] %>%
gather(key = "variavel", value = "valor") %>%
ggplot(aes(x = log(valor))) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
geom_histogram(fill = "lightyellow", color = "black", bins = 20) +
facet_grid(. ~ variavel, scales = "free_x")

signatures[18:21] %>%
gather(key = "variavel", value = "valor") %>%
ggplot(aes(x = log(valor))) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
geom_histogram(fill = "lightyellow", color = "black", bins = 20) +
facet_grid(. ~ variavel, scales = "free_x")

# Determine number of clusters
wss <- (nrow(signatures[13:21]))*sum(apply(signatures[13:21],2,var))
for (i in 2:15) wss[i] <- sum(kmeans(signatures[13:21],
centers=i)$withinss)
plot(1:15, wss, type="b", xlab="Number of Clusters",
ylab="Within groups sum of squares")

k_means_result <- kmeans(signatures[13:21], centers = 4, nstart = 20)
aggregate(signatures[13:21],by=list(k_means_result$cluster),FUN=mean)
grouped_signatures <- data.frame(signatures[13:21], k_means_result$cluster)
clusplot(grouped_signatures, k_means_result$cluster, color=TRUE, shade=TRUE,
labels=2, lines=0)

s
grouped_signatures$.row <- rownames(grouped_signatures)
teste <- melt(grouped_signatures, id = c(".row", "k_means_result.cluster") )
parallel_plot = ggplot(teste, aes(x = variable, y = value, group = .row, colour = k_means_result.cluster)) +
theme(axis.text.x = element_text(angle = 45, hjust = 0)) +
geom_line(alpha = .2) +
facet_wrap(~ k_means_result.cluster)
ggplotly(parallel_plot)
We recommend that you use the dev version of ggplot2 with `ggplotly()`
Install it with: `devtools::install_github('hadley/ggplot2')`
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3IgZWNobz1GQUxTRX0KcmVxdWlyZSh0aWR5dmVyc2UpICMgZ2dwbG90MiwgdGlkeXIsIGRwbHlyLCBldGMKcmVxdWlyZShicm9vbSkgIyBmYWNpbGl0YSBsaWRhciBjb20gbW9kZWxvcyBlIHRyYXRhIG8gcmVzdWx0YWRvIGRvIGttZWFucyBjb21vIG1vZGVsbwpyZXF1aXJlKGdnZm9ydGlmeSwgcXVpZXRseSA9IFRSVUUpICMgcGxvdHMgcGFyYSBtb2RlbG9zCnJlcXVpcmUoR0dhbGx5LCBxdWlldGx5ID0gVFJVRSkKcmVxdWlyZShrbml0ciwgcXVpZXRseSA9IFRSVUUpCnJlcXVpcmUoY2x1c3RlcikKcmVxdWlyZShnZ2RlbmRybykKcmVxdWlyZShjb3JycGxvdCkKcmVxdWlyZShyZXNoYXBlMikKcmVxdWlyZShwbG90bHkpCmxpYnJhcnkoZGV2dG9vbHMpCmxpYnJhcnkoZ2diaXBsb3QpCmBgYAoKCmBgYHtyfQpzaWduYXR1cmVzID0gcmVhZF9jc3YoImRhZG9zLy9zaWduYXR1cmVzLmNzdiIpCnNpZ25hdHVyZXMkZGlmZl8xID0gc2lnbmF0dXJlcyRtMiAtIHNpZ25hdHVyZXMkbTEKc2lnbmF0dXJlcyRkaWZmXzIgPSBzaWduYXR1cmVzJG0zIC0gc2lnbmF0dXJlcyRtMQpzaWduYXR1cmVzJGRpZmZfMyA9IHNpZ25hdHVyZXMkbTQgLSBzaWduYXR1cmVzJG0xCnNpZ25hdHVyZXMkZGlmZl80ID0gc2lnbmF0dXJlcyRtNSAtIHNpZ25hdHVyZXMkbTEKc2lnbmF0dXJlcyRkaWZmXzUgPSBzaWduYXR1cmVzJG02IC0gc2lnbmF0dXJlcyRtMQpzaWduYXR1cmVzJGRpZmZfNiA9IHNpZ25hdHVyZXMkbTcgLSBzaWduYXR1cmVzJG0xCnNpZ25hdHVyZXMkZGlmZl83ID0gc2lnbmF0dXJlcyRtOCAtIHNpZ25hdHVyZXMkbTEKc2lnbmF0dXJlcyRkaWZmXzggPSBzaWduYXR1cmVzJG05IC0gc2lnbmF0dXJlcyRtMQpzaWduYXR1cmVzJGRpZmZfOSA9IHNpZ25hdHVyZXMkbTEwIC0gc2lnbmF0dXJlcyRtMQoKCnNpZ25hdHVyZXNbMzo3XSAlPiUgCiAgZ2F0aGVyKGtleSA9ICJ2YXJpYXZlbCIsIHZhbHVlID0gInZhbG9yIikgJT4lCiAgZ2dwbG90KGFlcyh4ID0gbG9nKHZhbG9yKSkpICsgCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEpKSArCiAgICBnZW9tX2hpc3RvZ3JhbShmaWxsID0gImxpZ2h0eWVsbG93IiwgY29sb3IgPSAiYmxhY2siLCBiaW5zID0gMjApICsgCiAgICBmYWNldF9ncmlkKC4gfiB2YXJpYXZlbCwgc2NhbGVzID0gImZyZWVfeCIpCgpzaWduYXR1cmVzWzg6MTJdICU+JSAKICBnYXRoZXIoa2V5ID0gInZhcmlhdmVsIiwgdmFsdWUgPSAidmFsb3IiKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBsb2codmFsb3IpKSkgKyAKICAgIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSkpICsKICAgIGdlb21faGlzdG9ncmFtKGZpbGwgPSAibGlnaHR5ZWxsb3ciLCBjb2xvciA9ICJibGFjayIsIGJpbnMgPSAyMCkgKyAKICAgIGZhY2V0X2dyaWQoLiB+IHZhcmlhdmVsLCBzY2FsZXMgPSAiZnJlZV94IikKCnNpZ25hdHVyZXNbMTM6MTddICU+JSAKICBnYXRoZXIoa2V5ID0gInZhcmlhdmVsIiwgdmFsdWUgPSAidmFsb3IiKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBsb2codmFsb3IpKSkgKyAKICAgIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSkpICsKICAgIGdlb21faGlzdG9ncmFtKGZpbGwgPSAibGlnaHR5ZWxsb3ciLCBjb2xvciA9ICJibGFjayIsIGJpbnMgPSAyMCkgKyAKICAgIGZhY2V0X2dyaWQoLiB+IHZhcmlhdmVsLCBzY2FsZXMgPSAiZnJlZV94IikKCnNpZ25hdHVyZXNbMTg6MjFdICU+JSAKICBnYXRoZXIoa2V5ID0gInZhcmlhdmVsIiwgdmFsdWUgPSAidmFsb3IiKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBsb2codmFsb3IpKSkgKyAKICAgIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSkpICsKICAgIGdlb21faGlzdG9ncmFtKGZpbGwgPSAibGlnaHR5ZWxsb3ciLCBjb2xvciA9ICJibGFjayIsIGJpbnMgPSAyMCkgKyAKICAgIGZhY2V0X2dyaWQoLiB+IHZhcmlhdmVsLCBzY2FsZXMgPSAiZnJlZV94IikKCgpgYGAKCmBgYHtyfQojIERldGVybWluZSBudW1iZXIgb2YgY2x1c3RlcnMKd3NzIDwtIChucm93KHNpZ25hdHVyZXNbMTM6MjFdKSkqc3VtKGFwcGx5KHNpZ25hdHVyZXNbMTM6MjFdLDIsdmFyKSkKZm9yIChpIGluIDI6MTUpIHdzc1tpXSA8LSBzdW0oa21lYW5zKHNpZ25hdHVyZXNbMTM6MjFdLCAKICAJY2VudGVycz1pKSR3aXRoaW5zcykKcGxvdCgxOjE1LCB3c3MsIHR5cGU9ImIiLCB4bGFiPSJOdW1iZXIgb2YgQ2x1c3RlcnMiLAogIHlsYWI9IldpdGhpbiBncm91cHMgc3VtIG9mIHNxdWFyZXMiKQpgYGAKCgpgYGB7cn0Ka19tZWFuc19yZXN1bHQgPC0ga21lYW5zKHNpZ25hdHVyZXNbMTM6MjFdLCBjZW50ZXJzID0gNCwgbnN0YXJ0ID0gMjApCmFnZ3JlZ2F0ZShzaWduYXR1cmVzWzEzOjIxXSxieT1saXN0KGtfbWVhbnNfcmVzdWx0JGNsdXN0ZXIpLEZVTj1tZWFuKQpncm91cGVkX3NpZ25hdHVyZXMgPC0gZGF0YS5mcmFtZShzaWduYXR1cmVzWzEzOjIxXSwga19tZWFuc19yZXN1bHQkY2x1c3RlcikKY2x1c3Bsb3QoZ3JvdXBlZF9zaWduYXR1cmVzLCBrX21lYW5zX3Jlc3VsdCRjbHVzdGVyLCBjb2xvcj1UUlVFLCBzaGFkZT1UUlVFLCAKICAJbGFiZWxzPTIsIGxpbmVzPTApCmBgYAoKcwoKYGBge3J9Cmdyb3VwZWRfc2lnbmF0dXJlcyQucm93IDwtIHJvd25hbWVzKGdyb3VwZWRfc2lnbmF0dXJlcykKICB0ZXN0ZSA8LSBtZWx0KGdyb3VwZWRfc2lnbmF0dXJlcywgaWQgPSBjKCIucm93IiwgImtfbWVhbnNfcmVzdWx0LmNsdXN0ZXIiKSApCgpwYXJhbGxlbF9wbG90ID0gZ2dwbG90KHRlc3RlLCBhZXMoeCA9IHZhcmlhYmxlLCB5ID0gdmFsdWUsIGdyb3VwID0gLnJvdywgY29sb3VyID0ga19tZWFuc19yZXN1bHQuY2x1c3RlcikpICsgCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDApKSArCiAgICBnZW9tX2xpbmUoYWxwaGEgPSAuMikgKyAKICAgIGZhY2V0X3dyYXAofiBrX21lYW5zX3Jlc3VsdC5jbHVzdGVyKQpnZ3Bsb3RseShwYXJhbGxlbF9wbG90KQpgYGAKCg==